【Gitlab+Windows Server】CI/CD实现自动化部署vue+springboot项目(若依前后端分离)到Windows Server服务器 | 您所在的位置:网站首页 › gitlab windows部署磁盘满了 › 【Gitlab+Windows Server】CI/CD实现自动化部署vue+springboot项目(若依前后端分离)到Windows Server服务器 |
原先的项目,在本地跑通后,需要开发人员手动打包。然后上传到服务器,重启项目服务。这部分的工作非常的繁琐。好在有了jenkins或者gitlab-ci这些自动化的工具。只要配置好。之后的项目开发就不用操心众多的繁琐部署步骤了。 由于开发习惯问题,我的项目正式环境并不是linux,并且学习gitlab过程中,发现大多数的文章都是以linux系统为例,所以我主要研究在windows server中的实现。算是补全生态吧。 一. 部署gitlab我在腾讯云上买了一年80块的最低配置的linux云服务器做个人鼓捣用。当然阿里云也可以了,甚至本地的电脑也能当作gitlab的服务器。 部署方式相对简单,在宝塔面板上直接搜索 gitlab下载安装,我安装的版本是8.8.5(注意,后续的gitlab-runner.exe需要下载1.x版本,和gitlab配对,不然总是会注册失败) 部署完进入gitlab网址,注册号账号后,新建一个项目vue,点项目的设置,保存这两个值。 二.安装gitlab-runner下载安装包 1.10.4 (注意:最新版本和gitlab 8.8.5不匹配,要下载较老的版本)https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v1.10.4/binaries/gitlab-ci-multi-runner-windows-amd64.exe 用远程工具进入正式项目的服务器。在C盘新建Gitlab-Runner文件夹,把安装包改名为gitlab-runner.exe放进去(不改也行,主要是原名太长了)。 1.打开cmd,cd到Gitlab-Runner。 2. 执行 .\gitlab-runner.exe install 3.执行 .\gitlab-runner.exe register 。这时候会提示你填写链接和授权码,把上面保存好的数据依次填进去。 4. 选择执行器的环境,由于我的项目没有用到docker,所以选的是shell。 还有提示你填写标签和备注什么的,这个随便填,后续也可以在生成的toml文件中改。 5. 启动runner : ./gitlab-runner.exe start 三.编写配置文件这时候回到gitlab网页,项目中应该就能看到有一个可用的runner了。 vue项目首先项目服务器要先安装node/npm等工具用来打包,最好和开发环境的版本号一致,不然可能出奇怪的问题 接下来在vue项目的目录中新建 gitlab-ci.yml文件 填写以下内容: build: stage: build #标签,表示当前流水线处于哪个阶段 only: - master #只有推送到master分支才执行 script: - npm run build:prod #编译 - $CONFIG_PATH="C:\test\admin" - $TRUE_FALSE=(Test-Path $CONFIG_PATH) - echo $TRUE_FALSE - if($TRUE_FALSE -eq "True"){ remove-Item -Recurse -Force $CONFIG_PATH } - Copy-Item admin C:/test -Recurse -Force #把打包好的文件转移到项目所在的文件夹中然后推送git到master分支。在gitlab页面上可以上看到runner的执行情况。一般情况下,就能正常执行了。 springboot项目在springboot项目的目录中新建 gitlab-ci.yml文件 填写以下内容: variables: TARGET: ruoyi-admin/target/ruoyi-admin.jar #定义一个变量,jar包的路径,方便后面用 build: #编译 stage: build only: - master script: #-P prod 是打包的时候识别 application-prod.yml文件,如果没有区分prod/local/dev之类,可以不写 - mvn clean package -P prod #执行maven打包, - $CONFIG_PATH="C:\test\ruoyi-admin.jar" - $TRUE_FALSE=(Test-Path $CONFIG_PATH) - if($TRUE_FALSE -eq "True"){ remove-Item -Recurse -Force $CONFIG_PATH } #把打包好的文件转移到项目所在的文件夹中 - Copy-Item ruoyi-admin/target/ruoyi-admin.jar C:/test -Recurse -Force - cd C:/dali - C:/dali/run.bat #重启服务 四:踩坑 1.windows里面 执行 bat文件或者指令java -jar xxx.jar 的话。gitlab-runner会把启动的jar服务当作运行中的runner程序,所以状态一直是running运行中。如果推下一次的话,永远在排队。所以要换一种部署的方式。使用winsw把jar注册为服务。 run.bat里面的语句改为 winsw.exe restart 2.git提交spring-boot报 The term 'mvn' is not recognized as the name of a cmdlet原因是maven没有安装,安装完,配置到系统环境变量后。重启gitlab-runner.exe,再次提交。 3.git提交vue项目报 The term 'git' is not recognized as the name of a cmdlet, function, script file, or operable program是因为git没有安装 4.gitlab中的runner控制台出现乱码 � 这类,要到服务器的控制面板设置编码为utf-8。设置完重启就可以了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |